Microcontrollers can be used for controlling other devices. Devices that can be controlled by microcontrollers include analog to digital converters, digital to analog converters, input and output ports, direct memory access (DMA) controllers, coprocessors, and memories.
A DMA controller can transfer data between different memories and the devices controlled by a microcontroller, and thus can allow high speed data transfer with little CPU involvement. The DMA controller may move data between memories and devices using a number of independent DMA channels and may allow a number of independent and parallel data transfers.
The DMA controllers can move data between static random access memory (SRAM) and devices, between SRAM locations, and between device registers. With access to all devices, the DMA controller can handle automatic transfer of data to/from communication modules (i.e., ports). The DMA controller can also read from a memory mapped electronic erasable programmable read only memory (EEPROM).